// 批量爬取 http://www.itheima.com/teacher.html#ajavaee 网站中的老师图片
const HOST = 'http://www.itheima.com/'
let http = require('http')
let cheerio = require('cheerio') // 引入 cheerio 解析 html
let download = require('download')

// 创建一个请求，此时不会真正的去发送请求
let request = http.request(HOST + 'teacher.html#ajavaee', res => {
    // 异步响应数据
    let chunsk = []
    // 监听 data 事件，获取传递过来的数据片段并且拼接数据
    res.on('data', c => chunsk.push(c))
    // 监听end事件，数据获取完毕后触发
    res.on('end', () => {
        // 使用一个Buffer来处理获取到的数据,并且按照 utf-8 处理解析字符串
        const HTMLStr = Buffer.concat(chunsk).toString('utf-8')
        // 使用 cheerio 接收html字符串
        const $ = cheerio.load(HTMLStr);
        // 分析页面结构获取一个图片元素伪数组
        // 使用 map 获取处理数组，获取所有 img 标签中的 src 属性值
        let imgs = Array.prototype.map.call($('.maincon .clears li .main_pic img'), item => {
            return encodeURI(HOST + $(item).attr('src'))
        })
        // 批量下载图片到 dist 文件夹中
        Promise.all(imgs.map(url => download(url, 'dist'))).then(()=>{
            console.log('图片获取成功');
        })
    })
})
// 发送请求
request.end()